package com.iwhalecloud.citybrain.flow.platform.manager.application.service;

import com.iwhalecloud.citybrain.flow.platform.manager.common.ResponseResult;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.userentity.PositionInfo;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.userentity.UserInfo;

import java.util.List;

/**
　　* @description: 用户岗位服务
　　* @author shenrm
　　* @date 2021/10/27 15:00
　　*/
public interface UserPositionService {

    /**
     * 获取所有的岗位列表
     *
     * @return
     */
    List<PositionInfo> getAllPositions();

    /**
     * 通过岗位属性获取岗位下的用户列表
     *
     * @param positonCode
     * @return
     */
    List<UserInfo> getUserListByPositionId(String positonCode);

    /**
     * 根据userId获取人员岗位集合
     *
     * @param userId
     * @return
     */
    List<PositionInfo> getPositionInfoListByUserId(String userId);

    /**
     * 根据岗位列表集合获取用户列表
     *
     * @param positionCodes
     * @return
     */
    List<UserInfo> getUserListByPositionCodes(List<String> positionCodes);

    /**
     * 分页查询岗位列表
     * @param positionName
     * @param pageNo
     * @param pageSize
     * @return
     */
    ResponseResult getUserPositionPageList(String positionName, Integer pageNo, Integer pageSize);

    /**
     * 根据岗位ID获取该岗位的明细信息
     * @param positionCode
     * @return
     */
    PositionInfo getPositionDetail(Long positionCode);

    /**
     * 根据岗位编码获取岗位明细信息
     *
     * @param positionCode
     * @return
     */
    PositionInfo getPositionDetailByPosCode(String positionCode);
}
